﻿using System;
using System.Collections.Generic;
using System.Web.UI;
using Rendiciones.Logica.Modelos;
using Tesla.Excepciones;

namespace Rendiciones.Web.infraestructura
{
    public class UserControlBase: UserControl
    {
        public Usuario UsuarioConectado { get { return ((PageBase)Page).UsuarioConectado; } set { ((PageBase)Page).UsuarioConectado = value; } }
        public string GetPageName() { return ((PageBase)Page).GetPageName(); }
        public string GetPage() { return ((PageBase)Page).GetPage(); }
        public void MostrarError(string mensaje, string redirect) { ((PageBase)Page).MostrarError(mensaje, redirect); }
        public void MostrarOk(string mensaje, string redirect) { ((PageBase)Page).MostrarOk(mensaje, redirect); }
        public void MostrarOk(string mensaje, string titulo, string redirect) { ((PageBase)Page).MostrarOk(mensaje, titulo, redirect); }
        public void MostrarInfo(string mensaje, string redirect) { ((PageBase)Page).MostrarInfo(mensaje, redirect); }
        public virtual void Refresh() { }

        public void MuestraErroresDeValidacion(Control controlContenedor, bool mostrarMensaje, ResultadoValidacionException resultadoValidacionException) { ((PageBase)Page).MuestraErroresDeValidacion(controlContenedor, mostrarMensaje, resultadoValidacionException); }
        public void LimpiarErrores(Control controlContenedor) { ((PageBase)Page).LimpiarErrores(controlContenedor); }

        public void MuestraMensajeError(Control controlContenedor, string mensaje) { ((PageBase)Page).MuestraMensajeError(controlContenedor, mensaje); }
        public void MuestraMensajeOk(Control controlContenedor, string mensaje) { ((PageBase)Page).MuestraMensajeOk(controlContenedor, mensaje); }
        public void MuestraMensajeInfo(Control controlContenedor, string mensaje) { ((PageBase)Page).MuestraMensajeInfo(controlContenedor, mensaje); }
        public void MuestraMensajeAdvertencia(Control controlContenedor, string mensaje) { ((PageBase)Page).MuestraMensajeAdvertencia(controlContenedor, mensaje); }

        public bool ValidarFecha(string fecha, char separador) { return ((PageBase)Page).ValidarFecha(fecha, separador); }
        public DateTime? StringToDatetime(string fecha, char caracter) { return ((PageBase)Page).StringToDatetime(fecha, caracter); }

        public virtual void MarcarError(string mensaje) { }
        public virtual void LimpiarError() { }
    }
}